package com.zmn.oms.model.vo.conf.distribute;

import lombok.Data;

import java.io.Serializable;

/**
 * 类描述：派单参数信息
 *
 * @author mujunlin
 * @since 2020/03/02 5:48 下午
 */
@Data
public class DistributeWeightVO implements Serializable {

    /**
     * 新单简单派单：1停用，2启用
     */
    private Integer newSimpleStatus;

    /**
     * 新单后门开关：1停用，2启用
     * <p>
     * 针对：新单&普通派单，打开状态，即：只会判断基础条件
     */
    // TODO mujunlin 为了兼容老接口，上线后需删除
    private Integer backdoorStatus;

    /**
     * 新单自动派单：1停用，2推荐自动派单，3指定工程师自动派单，4公平自动派单
     */
    private Integer autoStatusNew;

    /**
     * 返修自动派单：1停用，2源工程师自动派
     * <p>
     * 仅针对：返修单
     */
    private Integer autoStatusRework;

    /**
     * 自动派单开始时间 格式：7:00
     */
    private String autoTimeStart;

    /**
     * 自动派单结束时间 格式：21:30
     */
    private String autoTimeEnd;

    /**
     * 最大返修单量
     * <p>
     * 不含：拉修待件
     */
    private Integer reworkLimit;

    /**
     * 距离权重
     * <p>
     * 距离：工程师当前位置，和当前订单的位置距离：A
     * <p>
     * 距离权重分：A≤1KM，分值100，每增加1KM分值减5，不足1KM按1KM计算，如：1.1KM算2KM。权值：分值×权重占比。
     */
    private Integer distanceWeight;

    /**
     * 手头单权重
     * <p>
     * 手头单：工程师未完成的工单数（待件&拉修除外）
     * <p>
     * 手头单权重分： (师傅最大手头单 - 手头单) / 师傅最大手头单 × 权重占比
     */
    private Integer handlerWeight;

    /**
     * 今日完成单权重
     * <p>
     * 今日完成单：今日完成的工单数
     * <p>
     * 今日完成单权重分：每完成1单，权值分增加：10分×权重占比
     */
    private Integer daySuccessWeight;

    /**
     * 上门率比重
     */
    private Integer visitRateWeight;

    /**
     * 成功率比重
     */
    private Integer successRateWeight;

    /**
     * 客单价比重
     */
    private Integer avtAmountWeight;

    /**
     * 用户评价比重
     */
    private Integer commentWeight;

    /**
     * 描述: 派单应用：1.平台， 2.公司
     **/
    private Integer distributeApplication;

    /**
     * 描述: 派单配置id(派单应用为平台时取平台派单权重配置id，为公司时取公司派单权重配置id)
     **/
    private Integer distributeConfigId;

    /**
     *  多种产品分组时间对应  {"1108":"08:00 ~ 19:30","1045":"08:00 ~ 19:30","1024":"08:00 ~ 19:30"}
     */
    private String autoTimeProductGroupJson;

    /**
     *  保护基于推荐自动派规则  1 首轮保护  2 多轮保护
     */
    private Integer autoRecommendProtectionType;


    /**
     * 不同产品对应不同保护次数  {"1103":"78","1045":"10","1024":"12"}
     */
    private String protectionTimesProductGroupJson;

    /**
     *  默认保护次数
     */
    private Integer protectionDefaultTimes;

}
